<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title> 
</head>
<body>
	<script type="text/javascript">
		/*
		  Promise常用API-对象方法
	  	*/

	  	// 打印Promise的详细信息
	  	// console.dir(Promise) // prototype 中的方法都属于实例方法！

	  		function queryData(url) {
			var p = new Promise(function(resolve, reject) {
				// 创建Ajax对象
				var xhr = new XMLHttpRequest();
				// 指定一个回调函数【在里面处理响应的结果！】、
				xhr.onreadystatechange = function() {
					// 把不关心的状态都屏蔽掉
					if (xhr.readyState != 4) return;

					
					if (xhr.readyState == 4 && xhr.status == 200) {
						// 正常的数据
						resolve(xhr.responseText); // 拿到服务器响应的数据
					} else {
						// 处理异常的信息
						reject("服务器异常！")
					}
				};
				// 准备发送前的参数
				xhr.open('get', url);
				xhr.send(null);

			})
			return p;
		}

		var p1 = queryData('http://localhost:3000/a1')
		var p2 = queryData('http://localhost:3000/a2')
		var p3 = queryData('http://localhost:3000/a3')
		// Promise.all([p1, p2, p3]).then((result) => {
		// 	console.log(result)
		// })
		// 可以拿到最快的返回的结果！
		Promise.race([p1, p2, p3]).then((result) => {
		console.log(result)
		})
	</script>
</body>
</html>